﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Collections;
using System.IO;

public partial class Admin_Quan_Ly_Hang : System.Web.UI.Page
{
    DataProvider duLieu = new DataProvider();
    ListBox listBox = new ListBox();

    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            Load_Danh_Muc();
        }
    }

    protected void Page_Init(object sender, System.EventArgs e)
    {
        //==== Make Loại HH ====

        DataTable bangloaihh = duLieu.Load_Du_Lieu_Admin_New("select maloaihh,tenloaihh from loaihanghoa", listBox);
        if (bangloaihh.Rows.Count != 0)
        {
            maloaihh.DataSource = bangloaihh;
            maloaihh.DataBind();
            maloaihh.SelectedIndex = 0;
        }
        else
        {
            System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('TABLE Loại Hàng Hóa Chưa Có Dữ Liệu')</SCRIPT>");

        }

        //==== Make Nhà SX ====

        DataTable bangnhasx = duLieu.Load_Du_Lieu_Admin_New("select manhasx,tennhasx from nhasx", listBox);
        if (bangnhasx.Rows.Count != 0)
        {
            manhasx.DataSource = bangnhasx;
            manhasx.DataBind();
            manhasx.SelectedIndex = 0;
        }
        else
        {
            System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('TABLE Nhà SX Chưa Có Dữ Liệu')</SCRIPT>");
        }
    }

    public DataTable tao_danh_sach_maloaihh_edit()
    {

        //==== Make Loại HH ====

        DataTable bangloaihh = duLieu.Load_Du_Lieu_Admin_New("select maloaihh,tenloaihh from loaihanghoa", listBox);
        if (bangloaihh.Rows.Count != 0)
        {
            return bangloaihh;
        }
        else
        {
            System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('TABLE Loại Hàng Hóa Chưa Có Dữ Liệu')</SCRIPT>");

        }

        return bangloaihh;
    }

    public DataTable tao_danh_sach_manhasx_edit()
    {

        //==== Make Nhà SX ====

        DataTable bangnhasx = duLieu.Load_Du_Lieu_Admin_New("select manhasx,tennhasx from nhasx", listBox);
        if (bangnhasx.Rows.Count != 0)
        {
            return bangnhasx;
        }
        else
        {
            System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('TABLE Nhà SX Chưa Có Dữ Liệu')</SCRIPT>");
        }

        return bangnhasx;
    }

    public void Load_Danh_Muc()
    {
        DataTable bangchude = null;
        bangchude = duLieu.Load_Du_Lieu_Admin_New("select * from hanghoa order by mahh DESC", listBox);
        if (bangchude.Rows.Count != 0)
        {
            gvDuLieu.DataSource = bangchude;
            gvDuLieu.DataBind();
        }
        else
        {
            thongbaoupdate.Text = "<font color='red'>HIỆN TẠI TRANG WEB CHƯA CÓ HÀNG HÓA NÀO</font>";
        }
    }

    protected void luuhanghoa_Click(object sender, System.EventArgs e)
    {
        string loaihanghoa = maloaihh.SelectedValue;
        string nhasx = manhasx.SelectedValue;
        string tenhh = tenhanghoa.Text.Trim();
        string motachitiet1 = motachitiet.Text.Trim();
        string soluong1 = soluong.Text.Trim();
        string dvt1 = dvt.Text.Trim();
        string dongia1 = dongia.Text.Trim();
        string hinhanh1 = "";
        string baohanh1 = baohanh.Text.Trim();

        if (hinhanh.HasFile & !string.IsNullOrEmpty(motachitiet1) & !string.IsNullOrEmpty(baohanh1) & !string.IsNullOrEmpty(dongia1) & !string.IsNullOrEmpty(dvt1) & !string.IsNullOrEmpty(tenhh))
        {
            thongbaotrantrung.Text = "";
            if (duLieu.kiemTraDienThoai(soluong1))
            {
                if (int.Parse(soluong1) < 1)
                {
                    thongbaotrantrung.Text = "<font color='red'>Số Lượng Phải Lớn Hơn 0.</font><br/><hr color='#008000' size='1'><br/>";
                    return;
                }
                if (int.Parse(soluong1) > 100000)
                {
                    thongbaotrantrung.Text = "<font color='red'>Số Lượng Phải Nhỏ Hơn 100000.</font><br/><hr color='#008000' size='1'><br/>";
                    return;
                }
            }
            else
            {
                thongbaotrantrung.Text = "<font color='red'>Số Lượng Phải là số nguyên</font><br/><hr color='#008000' size='1'><br/>";
                return;
            }

            //CHU Y SO
            try
            {
                if (float.Parse(dongia1) < 1000)
                {
                    thongbaotrantrung.Text = "<font color='red'>Đơn Giá Phải Lớn Hơn 1000.</font><br/><hr color='#008000' size='1'><br/>";
                    return;
                }

                if (float.Parse(dongia1) > 100000000)
                {
                    thongbaotrantrung.Text = "<font color='red'>Tiền Phải Nhỏ Hơn 100 Triệu.</font><br/><hr color='#008000' size='1'><br/>";
                    return;
                }
            }
            catch
            {
                thongbaotrantrung.Text = "<font color='red'>Đơn Giá Phải Là Số Và Lớn Hơn 0</font><br/><hr color='#008000' size='1'><br/>";
                return;
            }
            //==== Kiểm Tra Và Upload Hình Quảng Cáo ====
            try
            {
                bool chophepupload = false;
                string phanMoRong = System.IO.Path.GetExtension(hinhanh.PostedFile.FileName);
                if (phanMoRong.Equals(".jpg") || phanMoRong.Equals(".png") || phanMoRong.Equals(".gif"))
                {
                    chophepupload = true;
                }

                if (chophepupload == false)
                {
                    thongbaotrantrung.Text = "<font color='red'>File Này Không Được Phép Upload.</font><br/><hr color='#008000' size='1'>";
                    return;
                }
                hinhanh.SaveAs(Server.MapPath("..\\anh_san_pham\\") + hinhanh.FileName);
                hinhanh1 = hinhanh.PostedFile.FileName;
            }
            catch (Exception ex)
            {
                String message = "<SCRIPT LANGUAGE='JavaScript'>alert('" + ex.Message + "')</SCRIPT>";
                System.Web.HttpContext.Current.Response.Write(message);
                return;

            }

            //==== Nhập Mới ====

            listBox.Items.Clear();
            duLieu.MakeDuLieu(listBox, loaihanghoa);
            duLieu.MakeDuLieu(listBox, nhasx);
            duLieu.MakeDuLieu(listBox, tenhh);
            duLieu.MakeDuLieu(listBox, motachitiet1);
            duLieu.MakeDuLieu(listBox, soluong1);
            duLieu.MakeDuLieu(listBox, dvt1);
            duLieu.MakeDuLieu(listBox, dongia1);
            duLieu.MakeDuLieu(listBox, baohanh1);
            duLieu.MakeDuLieu(listBox, hinhanh1);
            duLieu.MakeDuLieu(listBox, DateTime.Today.ToShortDateString());

            if (duLieu.Luu_Du_Lieu_Admin_New("INSERT INTO HANGHOA(MALOAIHH,MANHASX,TENHH,MOTACHITIET,SOLUONGTON,DVT,DONGIA,BAOHANH,HINHANH,NGAYNHAP) VALUES(?,?,?,?,?,?,?,?,?,?)", listBox) != 0)
            {
                Response.Redirect("Quan_Ly_Hang.aspx");
            }
            else
            {
                thongbaotrantrung.Text = "<font color='red'>NHẬP HÀNG THẤT BẠI.</font><hr/>";
            }

        }
        else
        {
            thongbaotrantrung.Text = "<font color='red'>Bạn Chưa Nhập Đầy Đủ Dữ Liệu.</font><hr/>";
        }
    }

    protected void gvDuLieu_PageIndexChanging(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
    {
        gvDuLieu.PageIndex = e.NewPageIndex;
        Load_Danh_Muc();
    }

    protected void gvDuLieu_RowCancelingEdit(object sender, System.Web.UI.WebControls.GridViewCancelEditEventArgs e)
    {
        gvDuLieu.EditIndex = -1;
        Load_Danh_Muc();
    }

    protected void gvDuLieu_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e)
    {
        DataTable kiemtrahang = new DataTable();

        listBox.Items.Clear();
        duLieu.MakeDuLieu(listBox, gvDuLieu.Rows[e.RowIndex].Cells[0].Text);

        kiemtrahang = duLieu.Load_Du_Lieu_Admin_New("select * from chitietddhang where mahh=?", listBox);
        if (kiemtrahang.Rows.Count != 0)
        {
            thongbaoupdate.Text = "<font color='red'>Món Hàng Này Đang Được Đặt Hàng. Không Thể Xóa Được.</font><hr/>";
            return;
        }

        listBox.Items.Clear();
        duLieu.MakeDuLieu(listBox, gvDuLieu.Rows[e.RowIndex].Cells[0].Text);

        kiemtrahang = duLieu.Load_Du_Lieu_Admin_New("select * from chitietkm where mahh=?", listBox);
        if (kiemtrahang.Rows.Count != 0)
        {
            thongbaoupdate.Text = "<font color='red'>Món Hàng Này Đang Được Áp Dụng Khuyến Mãi. Không Thể Xóa Được.</font><hr/>";
            return;
        }

        listBox.Items.Clear();
        duLieu.MakeDuLieu(listBox, gvDuLieu.Rows[e.RowIndex].Cells[0].Text);

        duLieu.Luu_Du_Lieu_Admin_New("delete from hanghoa where mahh=?", listBox);
        File.Delete(Server.MapPath("..\\anh_san_pham\\") + ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[9].FindControl("hinhanh1")).Text);
        Response.Redirect("Quan_Ly_Hang.aspx");
    }

    protected void gvDuLieu_RowEditing(object sender, System.Web.UI.WebControls.GridViewEditEventArgs e)
    {
        gvDuLieu.EditIndex = e.NewEditIndex;
        Load_Danh_Muc();
    }


    protected void gvDuLieu_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)
    {
        string maloaihh = ((DropDownList)gvDuLieu.Rows[e.RowIndex].Cells[1].FindControl("maloaihh2")).SelectedValue;
        string manhasx = ((DropDownList)gvDuLieu.Rows[e.RowIndex].Cells[3].FindControl("manhasx2")).SelectedValue;
        string tenhanghoa = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[4].FindControl("tenhh2")).Text;
        string motachitiet = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[5].FindControl("mota2")).Text;
        string slt = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[6].Controls[0]).Text;
        string dvt = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[7].FindControl("dvt2")).Text.Trim();
        string dongia = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[8].FindControl("dongia2")).Text;
        string hinhanh = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[9].FindControl("hinhanh2")).Text;
        string bh = ((TextBox)gvDuLieu.Rows[e.RowIndex].Cells[10].FindControl("baohanh2")).Text;
        string stt = gvDuLieu.Rows[e.RowIndex].Cells[0].Text;

        if (int.Parse(slt) < 1)
        {
            thongbaoupdate.Text = "<font color='red'>Số Lượng Phải Lớn Hơn 0.</font><br/><hr color='#008000' size='1'><br/>";
            return;
        }
        if (int.Parse(slt) > 100000)
        {
            thongbaoupdate.Text = "<font color='red'>Số Lượng Phải Nhỏ Hơn 100000.</font><br/><hr color='#008000' size='1'><br/>";
            return;
        }

        if (float.Parse(dongia) < 1000)
        {
            thongbaoupdate.Text = "<font color='red'>Đơn Giá Phải Lớn Hơn 1000.</font><br/><hr color='#008000' size='1'><br/>";
            return;
        }

        if (float.Parse(dongia) > 100000000)
        {
            thongbaoupdate.Text = "<font color='red'>Tiền Phải Nhỏ Hơn 100 Triệu.</font><br/><hr color='#008000' size='1'><br/>";
            return;
        }

        if (!string.IsNullOrEmpty(bh) & !string.IsNullOrEmpty(hinhanh) & !string.IsNullOrEmpty(dongia) & !string.IsNullOrEmpty(maloaihh) & !string.IsNullOrEmpty(manhasx) & !string.IsNullOrEmpty(tenhanghoa) & !string.IsNullOrEmpty(motachitiet) & !string.IsNullOrEmpty(slt) & !string.IsNullOrEmpty(dvt))
        {
            thongbaoupdate.Text = "";

            listBox.Items.Clear();
            duLieu.MakeDuLieu(listBox, maloaihh);
            duLieu.MakeDuLieu(listBox, manhasx);
            duLieu.MakeDuLieu(listBox, tenhanghoa);
            duLieu.MakeDuLieu(listBox, motachitiet);
            duLieu.MakeDuLieu(listBox, slt);
            duLieu.MakeDuLieu(listBox, dvt);
            duLieu.MakeDuLieu(listBox, dongia);
            duLieu.MakeDuLieu(listBox, bh);
            duLieu.MakeDuLieu(listBox, hinhanh);
            duLieu.MakeDuLieu(listBox, stt);

            duLieu.Luu_Du_Lieu_Admin_New("update hanghoa set maloaihh=?,manhasx=?,tenhh=?,motachitiet=?,soluongton=?,dvt=?,dongia=?,baohanh=?,hinhanh=? where mahh=?", listBox);
            gvDuLieu.EditIndex = -1;
            Load_Danh_Muc();
        }
        else
        {
            thongbaoupdate.Text = "<font color='red'>Bạn Chưa Nhập Đầy Đủ Dữ Liệu.</font><hr/>";
        }
    }

    private void Sap_Xep_Du_Lieu(string COT)
    {
        string LenhSql = "select * from hanghoa";

        if (!string.IsNullOrEmpty(COT))
        {
            LenhSql = LenhSql + " Order by " + COT;
        }
        gvDuLieu.DataSource = duLieu.Load_Du_Lieu_Admin_New(LenhSql, listBox);
        gvDuLieu.DataBind();
    }

    protected void gvDuLieu_Sorting(object sender, System.Web.UI.WebControls.GridViewSortEventArgs e)
    {
        Sap_Xep_Du_Lieu(e.SortExpression);
    }
}